This invention relates to programmable logic array integrated circuit devices, and more particularly to the design of logic for implementation in such devices.
Programmable logic array integrated circuit devices are well known as shown, for example, by Wong et al. U.S. Pat. No. 4,871,930, Cliff et al. U.S. Pat. No. 5,260,611, and commonly assigned, co-pending U.S. patent application Ser. No. 08/442,795, filed May 17, 1995, all of which are hereby incorporated by reference herein. Such devices typically include a large number of relatively small logic modules, each of which is programmable to perform any of several logic functions on signals applied to that logic module. The modules are interconnectable in various ways by a programmable network of interconnection conductors so that the relatively simple logic functions performed by the individual logic modules can be concatenated into much more complex logic functions.
Computer programs are well known for assisting a user of a programmable logic device in implementing a desired logic design in the device. An example of such a computer program is the MAX+PLUS II Programmable Logic Development System, which is commercially available from Altera Corporation of San Jose, Calif. The MAX+PLUS II system is described, for example, in the Altera publications "MAX+PLUS II Getting Started", Version 5.0, July 1994, and "MAX+PLUS II AHDL", Version 5.0, July 1994, both of which are hereby incorporated by reference herein. The MAX+PLUS II system allows the user to specify the desired logic on a computer (e.g., an IBM-compatible personal computer with an Intel 486 microprocessor and adequate memory) using any of several different logic description interfaces. For example, there are text-based interfaces such as the Altera Hardware Description Language ("AHDL"), and there are graphics-based interfaces such as the MAX+PLUS II Graphic Editor. These interfaces allow the user to specify the desired logic in generic terms that are relatively standard for logic design and convenient for the user. They are not specific to the characteristics of the particular programmable logic device to be used.
Once the user has specified the desired logic design, computer programs such as the MAX+PLUS II system automatically convert that design to the form required for implementation on a particular programmable logic device. This typically involves reducing the user's logic design to relatively small pieces of logic (e.g., individual gates and flip-flops) that can be implemented in the logic modules of the device, and identifying the connections through the interconnection conductor network that are needed to interconnect the modules in the way required to produce the user's logic design. This process is sometimes referred to as "compilation" of the user's logic design. The computer program may then go on to control a device programmer to actually program the device (i.e., by programming the logic modules of the device to perform the various pieces of logic mentioned in the preceding sentence, and by programming the interconnection conductor network of the device to make the necessary connections between the logic modules).
As programmable logic devices have become larger (not necessarily in the physical sense but in the sense of increased logic capacity) and therefore capable of implementing more complex logic designs, a need has developed for more sophisticated user logic design and implementation tools. For example, an industry-standard "Library of Parameterized Modules" (LPM) has been developed in which various types of logic components are generalized in terms of one or more variables or "parameters." Thus a counter may be described generally using a parameter for its ultimate capacity, rather having different specifications for counters of different capacity (e.g., 2-bit, 4-bit, 6-bit, 8-bit, etc., capacity). Another parameter for a counter may indicate whether it counts up or down. An AND gate or multiplexer may be generalized using a parameter for its number of inputs. Parameterizing logic modules helps a logic designer in a number of ways, e.g., by facilitating re-use in different contexts of logic that the designer has already designed or that is otherwise extent. It would therefore be desirable for computer programs such as the MAX+PLUS II system to be able to support such parameterization.
In view of the foregoing, it is an object of this invention to provide improved methods for designing or specifying logic to be implemented in a programmable logic device.
It is a more particular object of this invention to provide programmable logic device logic implementation methods which allow the user to specify the desired logic design at least partly in terms of parameterized logic modules.